package cn.itcast.rabbitmq.simple;

import cn.itcast.rabbitmq.util.ConnectionUtil;
import com.rabbitmq.client.*;

import java.io.IOException;

public class Consumer {
    public static void main(String[] args) throws Exception{
        //    创建工厂连接
//    创建连接（工具类）
       Connection connection = ConnectionUtil.getConnection();
//    创建频道
       Channel channel = connection.createChannel();
//       声明队列
        channel.queueDeclare(Producer.QUEUE_NAME,true,false,false,null);
//        创建消费者（接手消息并处理消息）
         DefaultConsumer defaultConsumer =new DefaultConsumer(channel){
             @Override
             public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
//                 路由key
//                 交换机
//                 消息id
//                 接收的消息
                 System.out.println("路由key"+envelope.getRoutingKey());
                 System.out.println("交换机"+envelope.getRoutingKey());
                 System.out.println("消息id"+envelope.getRoutingKey());
                 System.out.println("我是"+ new String(body,"utf-8"));
             }
         };
//         监听队列
//        1.队列名 2.自动接收消息 ，MQ将消息从队列删除，没有接收到，则需要手动删除 3.消费者
            channel.basicConsume(Producer.QUEUE_NAME,true,defaultConsumer);
    }
}
